package cn.nangzi.study.oauth.util;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

/**
 * @author yufenghui
 * 
 * 日期：2016年5月4日 下午3:11:35
 *
 * 描述：
 * @version V1.0
 *
 */

public class DateUtil {
	
	/**
	 * 根据格式来格式化字符串为日期类型
	 * 
	 * @param dateStr
	 * @param format
	 * @return
	 */
	public static Date parseDate(String dateStr, String formatStr) {
		if(StringUtils.isBlank(dateStr) || StringUtils.isBlank(formatStr)) {
			return null;
		}
		DateTimeFormatter format = DateTimeFormat.forPattern(formatStr);
		DateTime dateTime = DateTime.parse(dateStr, format); 
		return dateTime.toDate();
	}
	
	/**
	 * 格式化字符串为本地日期类型
	 * 
	 * @param dateStr
	 * @param format
	 * @return
	 */
	public static Date parseLocalDate(String dateStr) {
		return parseDate(dateStr, "yyyy-MM-dd");
	}
	
	/**
	 * 格式化字符串为本地日期时间类型
	 * 
	 * @param dateStr
	 * @param format
	 * @return
	 */
	public static Date parseLocalTime(String dateStr) {
		return parseDate(dateStr, "yyyy-MM-dd HH:mm:ss");
	}
	
	public static String toDateStr(Date date, String formatStr) {
		DateTimeFormatter format = DateTimeFormat.forPattern(formatStr);
		DateTime dateTime = new DateTime(date);
		return dateTime.toString(format);
	}
	
	public static String now() {
		return toDateStr(new Date(), "yyyy-MM-dd HH:mm:ss");
	}

}
